﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Lephone.Data.SqlEntry;
using Lephone.Data;
using CsharpTpl.model;
using CsharpTpl.window;
using System.Collections;

namespace CsharpTpl.window
{
    public partial class FrmRoleList : Form
    {
        private long _czyID;
        private List<long> jsids = new List<long>();
        List<T_JS> alljs;
        public FrmRoleList(long czyID)
        {
            _czyID = czyID;
            List<T_CZYJS> czyjss = DbEntry.Context.ExecuteList<T_CZYJS>("select * from t_czyjs where czyid = " + _czyID);
            foreach (T_CZYJS czyjs in czyjss)
            {
                jsids.Add(czyjs.JSID);
            }
            alljs = T_JS.FindAll();
            InitializeComponent();
            btnAdd.Click += new EventHandler(btnAdd_Click);
            btnDel.Click += new EventHandler(btnDel_Click);
            btnQD.Click += new EventHandler(btnQD_Click);
            FillList();
        }
        void btnQD_Click(object sender, EventArgs e)
        {
            T_CZYJS czyJS;
            DbEntry.UsingTransaction(delegate
            {
                DbEntry.Context.ExecuteNonQuery("delete from t_czyjs where CZYID=" + _czyID);

                for (int i = 0; i < listViewYFP.Items.Count; i++)
                {
                    czyJS = T_CZYJS.New;
                    czyJS.CZYID = _czyID;
                    czyJS.JSID = long.Parse(listViewYFP.Items[i].Text);
                    czyJS.Save();
                }
            });
            this.Close();
        }
        void btnDel_Click(object sender, EventArgs e)
        {
            if (listViewYFP.SelectedItems.Count > 0)
            {
                foreach (ListViewItem item in listViewYFP.SelectedItems)
                {
                    listViewWFP.Items.Add((ListViewItem)item.Clone());
                    listViewYFP.Items.Remove(item);
                }
                // ListViewItem item = (ListViewItem)listViewWFP.SelectedItems[0].Clone();

            }
        }

        private void FillList()
        {
            //left
            ListViewItem item;
            foreach (T_JS js in alljs)
            {
                item = new ListViewItem(js.Id.ToString());
                item.SubItems.Add(js.MC);
                item.SubItems.Add(js.BZSM);
                if (jsids.Contains(js.Id))
                {
                    listViewYFP.Items.Add(item);
                }
                else
                {
                    listViewWFP.Items.Add(item);
                }
            }
        }



        void btnAdd_Click(object sender, EventArgs e)
        {
            if (listViewWFP.SelectedItems.Count > 0)
            {
                foreach (ListViewItem item in listViewWFP.SelectedItems)
                {
                    listViewYFP.Items.Add((ListViewItem)item.Clone());
                    listViewWFP.Items.Remove(item);
                }
                // ListViewItem item = (ListViewItem)listViewWFP.SelectedItems[0].Clone();

            }
        }

    }
}
